* {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  margin:0;
  padding:0;
}

html, body {
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  background:#000;
  overflow:hidden;
}

#map {
  z-index:0;
  width:100%;
  height:100%;
}

#map svg {
  z-index:10;
}

#title {
  position:fixed;
  left:10px;
  top:10px;
  color: #fff;
}

#active {
  position:fixed;
  left:10px;
  top:50px;
  color:#fff;
  font-family:Verdana, Arial, Helvetica, sans-serif;
  font-weight:normal;
  font-size:16px;
  z-index:10;
}

#active-number {
  font-size:50px;
  vertical-align:middle;
}

#markers {
  z-index:20;
  position:absolute;
  left:0;
  top:0;
}

.marker {
  position:absolute;
  background:url('maptail-marker.png') top left no-repeat;
  width:34px;
  height:34px;
  margin-top:-12px;
  margin-left:-12px;
}

.marker .data {
  position:absolute;
  background:rgba(0,0,0,0.84);
  color:yellow;
  top:-26px;
  left:-32px;
  width:100px;
  display:none;
  font-family:Lucida Grande, Arial, Helvetica, sans-serif;
  font-size:9px;
  line-height:10px;
  white-space:nowrap;
  padding:2px 0;
  border-radius:4px;
  border:1px solid rgba(255,255,255,0.1);
  text-align:center;
}

.marker:hover, .marker.hovered {
  opacity:1.0 !important;
}

.marker:hover .data, .marker.hovered .data {
  display:block;
  z-index:10000;
}

#messages {
  position:fixed;
  left:0;
  bottom:0;
  padding:3px;
  width:100%;
  z-index:10;
  color:#777;
  font-family:Consolas, Courier New;
  font-size:12px;
  line-height:11px;
  white-space:nowrap;
}

#messages:hover div {
  opacity:1.0 !important;
}

#iplist {
  position:fixed;
  right:0;
  top:0;
  padding:3px;
  text-align:right;
  z-index:30;
  color:#666;
  font-family:Lucida Grande, Arial, Helvetica, sans-serif;
  font-size:13px;
}

#iplist div:hover, #iplist div:hover > *, #iplist div.hovered, #iplist div.hovered > * {
  color:yellow !important;
}

.city {
  color:#222;
}

.country {
  color:yellow;
}

#regexp {
  position:fixed;
  top:10px;
  left:400px;
  z-index:100;
  background:rgba(0,0,0,0.3);
  border:1px solid #222;
  padding:6px;
  font-family:Consolas;
  font-size:14px;
  color:yellow;
}

#regexp:focus {
  border-color:#555;
}

#matches {
  position:fixed;
  top:52px;
  left:0;
  padding:10px;
  z-index:50;
  font-family:Consolas, Courier New;
  font-size:12px;
  line-height:11px;
}

#dots {
  z-index:1000;
}

.dot {
  position:fixed;
  left:-100px;
  top:-100px;
  width:4px;
  height:4px;
  background:url(maptail-dot.png) top left no-repeat;
  z-index:15;
}

.ribbon {
  background-color: #000;
  overflow: hidden;
  /* top left corner */
  position: fixed;
  right: -4em;
  bottom: 2.7em;
  /* 45 deg ccw rotation */
  -moz-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  /* shadow */
  -moz-box-shadow: 0 0 1em #333;
  -webkit-box-shadow: 0 0 1em #333;
  z-index:1000;
}
.ribbon a {
  border: 1px solid #333;
  color: #555;
  display: block;
  font: 16px 'Lucida Grande', Arial, sans-serif;
  margin: 0.06em 0.05 0.075em 0;
  padding: 0.5em 3.5em 0.7em;
  text-align: center;
  text-decoration: none;
  /* shadow */
  text-shadow: 0 0 0.5em #444;
}
.ribbon:hover a {
  color: #ff0;
}
